The present invention relates in general to an interface between a user of a graphics display system and the information portrayed on a video display of the system. More particularly, the invention defines apparatus and methods for selecting among visible objects displayed in a three dimensional rendering on a frame buffer based graphics video display system.
The rendering of three dimensional graphic images on a two dimensional raster scan display screen conventionally involves the use of a frame buffer to store the final image for raster display synchronized scanning. This graphics display architecture includes a number of memories which individually store window information, general masking information, and Z buffer information. A representative system is described in U.S. Pat. No. 4,609,917.
In the context of such technology, the frame buffer stores by pixel position image information which is synchronously scanned, converted and rendered on the video display. The information in the frame buffer is the end product of numerous data manipulations involving, among other things, the generation of three dimensional objects by a processor, depth comparisons referenced to a Z buffer and used to render into the frame buffer only the objects or portions thereof which are visible, clipping of the objects to windows, and clipping of the objects to general masks. Consequently, the two dimensional images resident in the frame buffer cannot in most cases be directly related back to the three dimensional objects from which they originated.
This lack of direct correspondence between the original objects and the pixel data in the frame buffer is attributable to the architecture of representative graphics systems. This architecture conventionally includes a front end graphics processor, which defines each object by boundary parameters, and a rasterization processor, which receives such object parameters and transforms those parameters into data by pixel. Thus, three dimensional objects are transformed into pixel data along raster scan referenced lines. The rasterization processor incorporates the clipping effects of window planes, the boundaries defined by masking planes, and the visibility by pixel of three dimensional objects in relation to other objects, as last defined in the Z buffer. The rasterization processor writes the pixel information into the frame buffer only after the masking conditions are satisfied and the pixel of the object subject to writing has a Z axis depth greater than the previous information at that pixel position.
This convention of three dimensional graphics display system architecture and practice makes it very difficult to perform a "pick" operation. The pick operation involves a selection, using a mouse controlled cursor or comparable pointing apparatus, by a human user of an object as visibly rendered on the video display. In such a context, the graphics display system must be able to identify which of the numerous objects rendered by the rasterization processor is the visible object portrayed on the display screen. Of course it is possible to rerender the whole image in the frame buffer and in doing so identify the correspondence of the cursor to the object. Unfortunately, that is not a practical solution in most three dimensional renderings given the extensive computational effort required to regenerate relatively complex images and the user's expectation of immediacy in the pick process.
An additional problem which exists in the contemporary practice of implementing a pick function in graphics system hardware, given the unacceptable slow speed of software implemented pick operations, is the inability of the pick hardware to discern visibility of the object as rendered into the frame buffer and depicted on the video display. Conventionally implemented pick hardware will identify position correspondence between a cursor and an object subject to rendering, but not whether that object is visible or hidden. Though new three dimensional graphics standards now specify that the pick operation should be capable of identifying the visible object at the position of the pick, an efficient implementation of such capability has yet to be defined.
Accordingly, there exists a need for graphics system apparatus and methods by which the pick operation can be implemented to identify visible objects in a three dimensional image generated on a display at a speed consistent with user expectations.